package com.sskj.api.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sskj.api.domain.Permission;
import com.sskj.common.dto.TreeNode;
import java.util.Collection;
import java.util.List;

public interface IPermissionService extends IService<Permission> {

    /**
     * 新增
     * @param permission 实例
     */
    void add(Permission permission);

    /**
     * 删除
     * @param id 主键ID
     */
    void deleteById(Long id);

    /**
     * 更新
     * @param permission 实例
     */
    void update(Permission permission);

    /**
     * 获取树结构
     * @param status 状态
     * @return 树结构
     */
    List<TreeNode<Permission>> tree(Integer status);

    /**
     * 获取树结构
     * @param ids 权限ID集合
     * @param status 状态
     * @return 树结构
     */
    List<TreeNode<Permission>> tree(Collection<Long> ids, Integer status);

    /**
     * 获取所有操作权限集合
     * @return 操作权限集合
     */
    List<Permission> allAction();

    /**
     * 获取指定的权限集合
     * @param ids 集合ID
     * @return 操作权限集合
     */
    List<Permission> listAction(Collection<Long> ids);
}
